<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>相等运算符</title>
    <script>
        /* 相等运算符 */
        /* 
        相等运算符用来比较两个值是否相等
            如果相等返回true。否则返回false

        使用 == 来做相等运算,一个等号是赋值运算符
            当使用==来比较两个值时，如果值的类型不同，则会自动进行类型转换，将其转换为相同类型
            然后进行比较
        不相等 !=
            不相等用来判断两个值是否不相等，如果不相等则返回true，否则返回false
            不相等也会对变量进行自动类型转换，如果转换后相等它也会返回false
        全等===
            用来判断两个值是否全等，他和相等类似，不同的是他不会自动进行类型转换
            如果两个值的类型不同直接返回false
        不全等!==
            用来判断两个值是否不全等，和不等类似，不同的是他不会自动进行数值类型转换
            如果两个值类型不同直接返回true
        */
        /* 
        unidentified衍生自null
        所以这两个值进行数值判断时会返回true
        NaN不和任何值相等，包括它本身
        可以通过isNaN()函数来判断一个值是否为NaN
            如果该值是NaN则返回true，否则返回false
        */
        console.log(1 == 1); //true
        var a = 10;
        console.log(a == 4); //false
        console.log("1" == 1); //true
        //将字符串和布尔值都转换为数值
        console.log(true == "1"); //true
        //特殊情况
        console.log(null == 0); //false
        console.log(undefined == null); //true
        console.log(NaN == NaN); //false
        var b = NaN;
        //判断b的值是否为NaN
        //console.log(b == NaN);不可行
        //调用isNaN()函数
        console.log(isNaN(b));

        //不相等
        console.log(10 != 1); //true
        console.log(10 != 10); //false
        console.log("abcd" != "abcd"); //false
        cosole.log("1" != 1); //false
    </script>
</head>

<body>

</body>

</html>